De standaard opmaak voor tabellen is onaantrekkelijk.
De Jommeke's gegevens, die we in een HTML-tabel geplaatst hebben is een voorbeeld van spreadsheet gegevens. De niet opgemaakte HTML-tabel ziet er gewoontjes uit. Alleen de caption en de th elementen staan standaard in het vet.
Gelukkig kunnen we de tabel met behulp van CSS het uiterlijk van onze tabel gegevens zelf controleren.
Na deze les weet je hoe je tabellen met CSS opmaakt. Je leert hoe je:
cellen voorziet van opvulling: als de tekst in een tabelcel de rand of een andere cel raakt, is de tekst niet goed leesbaar. Voeg opvulling toe en de leesbaarheid verbetert;
koppen onderscheidt van de andere cellen: alle tabelkoppen vet maken (de standaardstijl voor het element th) maakt het gemakkelijker om de tabel in één oogopslag te lezen. Je kunt ze ook in hoofdletters zetten en ze een achtergrondkleur geven of ze onderstrepen om ze duidelijk van de inhoud te onderscheiden;
even en oneven rijen en kolommen een andere kleur geeft: rijen om en om kleuren helpt de gebruiker de rijen te volgen. Gebruik een kleur die subtiel afwijkt van de andere rijen zodat de tabel er als één geheel blijft uitzien;
getallen rechtsuitlijnt: je kunt de eigenschap text-align gebruiken om de inhoud van een kolom die getallen bevat rechts uit te lijnen, zodat grote getallen duidelijk onderscheiden worden van kleinere. Op die manier volg je de wiskundige manier van getallen schrijven;
een rollover effect maakt;
Video
Algemeen
Let erop dat je bij het opmaken van een tabel aandacht besteed aan:
Voorzie cellen van opvulling (padding): als de tekst in een tabelcel de rand of een andere cel raakt, is de tekst niet goed leesbaar. Voeg witruimte toe en de leesbaarheid verbetert.
Onderscheid koppen van de andere cellen: alle tabelkoppen vet maken (de standaardstijl voor het element th) maakt het gemakkelijker om te tabel in één oogopslag te lezen. Je kunt ze ook in hoofdletters zetten en ze een achtergrondkleur geven of ze onderstrepen om ze duidelijk van de inhoud te onderscheiden.
Geef even en oneven rijen een andere kleur: rijen om en om kleuren helpt de gebruiker de rijen te volgen, zeker voor tabellen met heel veel rijen. Gebruik een kleur die subtiel afwijkt van de andere rijen zodat de tabel er als één geheel blijft uitzien.
Lijn getallen rechts uit: je kunt de eigenschap textalign gebruiken om de inhoud van een kolom die getallen bevat rechts uit te lijnen, zodat grote getallen duidelijk onderscheiden worden van kleinere. Op die manier volg je de wiskundige manier van getallen schrijven.
We hebben al verschillende CSS eigenschappen gezien die ook met tabellen gebruikt kunnen worden.
Hier volgen enkele voorbeelden:
width om de breedte van de tabel op te geven
padding om de ruimte tussen de rand van elke cel en de inhoud ervan in te stellen
text-transformom de inhoud van de koppen van de tabel om te zetten in hoofdletters
letter-spacingen font-size om aanvullende styling aan de inhoud van de tabelkoppen toe te voegen
border, border-top enborder-bottom om randen boven en onder de tabelkoppen in te stellen
text-align om tekst van bepaalde cellen links uit te lijnen en die van de andere rechts
background-color om de achtergrondkleur van de even en oneven rijen in te stellen
:hover om een rij te markeren wanneer een gebruiker er met de muis overheen zweeft
Nieuwe eigenschappen, selectoren, ezn. die we in deze les leren:
met behulp van de CSS nth-child selector, kunnen voor elke rij een andere stijl definiëren;
Tabelopmaak
We gaan deze opmaak realiseren:
CSS Jommeke tabel final
Welke stijlregels heb je nodig om een tabel weer te gegeven zoals een desktop spreadsheet?
We gaan de stijlregens voor een desktop spreadsheet in een klasse onderbrengen met de naam spreadsheet. De stijlregels plaatsen we in een CSS bestand met de naam spreadsheet.css.
Maak een submap in je werkmap en geef er de naam css aan.
In die css submap maak je een CSS bestand met de naam spreadsheet.css. Je mappenstructuur ziet er als volgt uit:
tabellen met css map structuur
Als voorbeeld gebruiken we de HTML uit de les HTML tabellen. Zonder de inline CSS en zonder de commentaar en met extra rijen. Een langere tabel opmaken is uitdagender. We geven er de naam tabellen-met-css.html aan.
tabel met kader en celranden met witruimte ertussen
Er staat nu wel een kader rond de cellen maar er staat overal witruimte tussen wat zorgt voor dubbele lijnen. Deze neem je wel door het border-collapse attribuut van het table element in te stellen op de waarde collapse:
Lettertype, lettergrootte, gewicht, witruimte, kleur en achtgrondkleur Het reultaat van het instellen van lettergrootte, lettertype, gewicht, witruimte, kleur en achtergrondkleur:
CSS Jommeke tabel met basis eigenschappen ingesteld
Niet slecht. Maar er ontbreken nog enkele zaken:
Het lettertype in een tabel mag wat strengen met minder 'voeten', serifs genoemd.
serif / sans-serif
De standaard serif font Times Roman is te speels voor een tabel. We nemen de sans-serif font Verdana. We stellen het lettertype in voor het table element en dit lettertype wordt dan doorgegeven aan alle element in het table element (cascading):
Het caption element
Het lettertype van de titel van de tabel mag iets groter en het gewicht mag in vet.
De achtergrondkleur stellen we in op grijs.
De kleur van de tekst in bijna zwart.
Met de caption-side eigenschap plaatsen we de titel onderaan de tabel.
de prijs voor een album moet rechts uitgelijn worden;
het is een lange tabel, het zou goed zijn als de achtergrondkleur van de even rijen verschilt van die van de even rijen.
child pseudoklassen gebruiken
We beginnen met het instellen van achtergrondkleur voor even en oneven rijen. We gebruiken daarvoor de :nth-child pseudoklasse en de waarden even en odd. Let erop dat we de child combinator gebruiken om alleen de rijen in het tbody element in te stellen. Hier zie je het voordeel van het gebruik van semantische table elementen!
2n betekent 2 * n, waarbij n start op 0 en voor elke kind-element vermeerderd wordt met één.
<table>
n
2n (= even)
2n + 1 (odd)
<tr>
0
0 (bestaat niet en zal niet worden geselecteerd)
1
<tr>
1
2
3
<tr>
2
4
5
<tr>
3
6
7
<tr>
4
8
9
We hebben nu de nodige kennis om de laatste drie cellen van elke van het tbody element te selecteren het het text-align attribuut in te te stellen op right. Want prijzen in een tabel worden gewoonlijk rechtsuitgelijn.
We gebruiken de :nth-last-child selector met de formule -n + 3:
Alleen de cellen in de kolommen met een kostprijs zijn rechtsuitgelijnd.
CSS Jommeke tabel final
Rollover effect
Een rij markeren wanneer de gebruiker erover gaat me de muis is met CSS gemakkelijk te implementeren.
Probleem
Hoe kan je een rij van achtergrondkleur te veranderen als de muis er overheen zweeft? En hoe zorg je ervoor dat alleen de rijen met een boek selectbaar zijn. Dus niet de rijen met de kolomtitels.
Dat is nog manier om de leesbaarheid van de gegevens in tabelvorm te verhogen.
Design
Dit is een zeer eenvoudige oplossing voor. Je hoeft alleen de volgende stijlregel aan je CSS toe te voegen:
We hebben al gezien hoe je pseudoklasse :hover kan gebruiken met het <a> element. Welnu je kan de pseudoklasse :hover op andere elementen ook gebruiken om leuke effecten te creëren.
Let erop dat de :hover pseudoklasse stijlregel na de standaard stijlregels voor tr komen!!!!
We willen het rollover effect voor de rijen die in het tbody element staan en gebruiken daarom de volgende child combinator: